HJS

리액트 함수형 컴포넌트의 반환 타입 정리

function component return type

1️⃣ 반환 타입 종류 및 차이점

🔹 JSX.Element

const MyComponent = (): JSX.Element => {
	return <div>Hello</div>;
};

🔹 React.ReactElement

cosnt MyComponent = (): React.ReactElement => {
	return <h1>Title</h1>;
};

🔹 ReactNode

const MyComponent = (): React.ReactNode => {
	if (Math.random() > 0.5) return <div>Random</div>
	return 'Hello world';
};

🔹 React.FC (또는 React.FunctionComponent)

const MyComponent: React.FC = () => {
  return <div>With children prop</div>;
};
type Props = { name: string };

const Greet: React.FC<Props> = ({ name, children }) => {
  return (
    <div>
      Hello, {name}
      {children}
    </div>
  );
};


2️⃣ 타입 간의 관계 요약

반환 타입포함 범위특징사용 예시
JSX.ElementJSX 전용가장 기본적인 JSX 타입대부분의 컴포넌트
React.ReactElementJSXJSX.Element와 유사, 네임스페이스 명확라이브러리용 컴포넌트
ReactNodeJSX + string, null, number 등 포함가장 넓은 표현 범위조건부 렌더링, 동적 출력
Reaact.FC컴포넌트 전체children 자동 포함명확한 선언현 컴포넌트


3️⃣ 예제 코드 비교